package com.java.synchronized_;

/**
 * synchronized可重入
 */
public class SynchronizedReentrant {
    public synchronized void func1() {
        System.out.println("房间1-钥匙A");
        // 中途带上钥匙离开房间的期间可进入到共用该钥匙的任意房间
        func2(); // 顺利进入func2，若非可重入则不能进入共用同一钥匙的其他房间
    }

    public synchronized void func2() {
        System.out.println("房间2-钥匙A");
    }

    public static void main(String[] args) {
        new Thread(() -> {
            new SynchronizedReentrant().func1();
        }).start();
    }
}
